package com.pureut.production.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.production.domain.PublicScheduling;
import com.pureut.production.domain.SpunlaceOrder;
import com.pureut.production.domain.dto.*;
import com.pureut.production.domain.vo.*;

import java.util.List;

/**
 * @author: CM
 * @date: 2023/2/9    11:20
 */
public interface SpunlaceOrderService extends IService<SpunlaceOrder> {

    /*
        停产
     */
    boolean ldle(SpunlaceOrderVo spunlaceOrderVo);

    /**
     * 复产
     * @param spunlaceOrderVo
     * @return
     */
    boolean prolific(SpunlaceOrderVo spunlaceOrderVo);

    /**
     * 关结
     * @param spunlaceOrderCloseVo
     * @return
     */
    boolean close(SpunlaceOrderCloseVo spunlaceOrderCloseVo);

    /**
     * 水刺制令单列表
     * @param spunlaceOrderVo
     * @return
     */
    List<SpunlaceOrderDto> getList(SpunlaceOrderVo spunlaceOrderVo);

    /**
     * 查看单据
     * @param id
     * @return
     */
    SpunlaceOrderViewDto view(Long id);

    /**
     * 关联工艺回显
     * @param id
     * @return
     */
    PublicProcessDto processView(Long id);

    /**
     * 关联工艺保存
     * @param publicProcessVo
     * @return
     */
    boolean processSave(PublicProcessVo publicProcessVo);

    /**
     * 工艺确认
     * @param publicProcessVo
     * @return
     */
    boolean processAffirm(PublicProcessVo publicProcessVo);

    /**
     * 工艺确认回显
     * @param id
     * @return
     */
    PublicProcessDto processAffirmView(Long id);

    /**
     * 生成执行单
     * @param publicScheduling
     * @return void
     */
    int addOrderCutScheduling(PublicScheduling publicScheduling) throws Exception;

    List<ScFqDto> getMoOrderList(String moNumber);

    boolean editQualityOrder(EditQualityOrderVo editQualityOrderVo);

    /**
     * 根据产品号码查出对应信息
     * @param materialNumber
     * @param type
     * @return
     */
    PrintDto getProductionNumberPrint(String materialNumber, String type);

    /**
     * 根据库存的关联单号查询水刺制令单工艺卡编码
     * @param wsiConnectNum
     * @return
     */
    SpunlaceOrderDto getProcessCardCoding(String wsiConnectNum);

    /**
     * 标签绑定新增
     * @param printTempleteVo
     * @return
     */
    boolean savePrintTemplete(PrintTempleteVo printTempleteVo);

    /**
     * Pda列表
     * @param pdaVo
     * @return
     */
    List<PdaDto> getPdaList(PdaVo pdaVo);

    /**
     * 根据关联单号查询水刺投料信息
     * @param materialNumber
     * @return
     */
    List<MaterialResumeDto> selectSpunlaceOrderInfo(String materialNumber);

    /**
     * 根据关联单号查询水刺制令单信息
     * @param feedOrderNumber
     * @return
     */
    SpunlaceOrder selectDocumentStatusInfo(String feedOrderNumber);

    /**
     *
     */
    boolean getStatusByPlanNumber(String planNumber);

    /**
     * 删除水刺制令单
     * @param planNumber
     * @return
     */
    boolean remove(String planNumber);

    /**
     * 水刺和脱脂制令单列表
     * @param productionLine
     * @return
     */
    List<ScFqDto> getMoSpunlaceAndDegrease(String productionLine);
}
